package coop.bancocredicoop.proyectos.gd.rbac.procedure;

import coop.bancocredicoop.proyectos.gd.alfresco.AlfrescoHttpClient;
import coop.bancocredicoop.proyectos.gd.alfresco.SimpleWebScriptResult;
import coop.bancocredicoop.proyectos.gd.alfresco.Utils;
import coop.bancocredicoop.proyectos.gd.rbac.RBAC;

public class AddUserToAlfrescoGroupsProcedure {

	public void run(RBAC rbac) throws Exception {

		AlfrescoHttpClient alfrescoHttpClient = Utils.
				getAlfrescoClientFromConfigAsSystemUser();

		for (String grupoAlfresco : rbac.getRolesAlfrescoHabilitados()) {
			if (grupoAlfresco.trim().equals(""))
				continue;

			SimpleWebScriptResult result = alfrescoHttpClient.addUserToGroup(
					rbac.getUsuario().getUserName(), grupoAlfresco);

			if (!result.isSuccessful()) {
				throw new RuntimeException("No se ha podido agregar" +
						" al usuario " + rbac.getUsuario().getUserName() +
						" al grupo Alfresco " + grupoAlfresco + "\n" +
						result.getMessage());
			}

		}

	}

}
